//
//  EmoticonPackge.swift
//  FaceKeyBoard
//
//  Created by cmh on 15/9/13.
//  Copyright © 2015年 cmh. All rights reserved.
//

import UIKit

class EmoticonPackge: NSObject {
    
    // id
    var id: String?
    // 名字
    var group_name_cn: String?
    
    // 表情分组
    lazy var emoticons = [Emoticon]()
    
    init(dict: [String: AnyObject]) {
        super.init()
        
        id = dict["id"] as? String
        group_name_cn = dict["group_name_cn"] as? String
        
        if let array = dict["emoticons"] as? [[String: String]] {

            var index = 0
            
            for var d in array {
                
                // 拼接路径，方便调用
                if let imagepath = d["png"] {
                    
                    d["png"] = id! + "/" + imagepath
                    
                }
                
                emoticons.append(Emoticon(dict: d))
                index++
                
                // 如果超过20个就添加一个删除按钮
                if index == 20 {
                    emoticons.append(Emoticon(isRemove: true))
                    index = 0
                }
            }
        }
         // 添加的空白表情
         appendEmptyEmoticonAndEmptyBtn()
        
    }
    
    // 添加空白按钮和删除按钮
    private func appendEmptyEmoticonAndEmptyBtn() {
        
        let count = emoticons.count % 21
        
        // 只有在数组为空和刚好被21整除的时候才不需要返回，解决了，第一组也需要添加按钮的情况
        if count == 0 && emoticons.count > 0 {
            return
        }
        
        for _ in count..<20 {
        
            emoticons.append(Emoticon(isEmpty: true))
        }
        
        // 追加一个删除按钮
        
        emoticons.append(Emoticon(isRemove: true))
    
    }
    
    
    // 重写description
    override var description: String {
        
        let keys = ["id", "group_name_cn", "emoticons"]
        
        return dictionaryWithValuesForKeys(keys).description
        
        
    }

}
